﻿using JTC.Genetics.Molecules;
using JTC.Genetics.Molecules._Abstract;
using JTC.Genetics.Molecules._Interfaces;
using JTC.Genetics.Molecules.Proteins;
using JTC.Genetics.Molecules.Proteins._Abstract;
using JTC.Genetics.Replication._Interfaces;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Moq;
using System;

namespace JTC.Genetics.UnitTests
{
    [TestClass]
    public class Autosome_Tests
    {
        private IChromosome _instance;
        private Mock<ProteinBase> _mockProtien;
        private Mock<ITranslator> _mockTranslator;

        [TestInitialize]
        public void SetUp()
        {
            _mockProtien = new Mock<ProteinBase>();
            _mockTranslator = new Mock<ITranslator>();
            _instance = new Autosome(_mockProtien.Object, _mockTranslator.Object);
        }

        [TestMethod]
        public void Implements_IChromosomes()
        {
            Assert.IsInstanceOfType(_instance, typeof(IChromosome));
        }

        [TestMethod]
        public void DNA_default()
        {
            Assert.IsNotNull(_instance.DNA);
        }

        [TestMethod]
        public void Protein_default()
        {
            Assert.IsNotNull(_instance.Protein);
        }

        [TestMethod]
        public void RNA_default()
        {
            Assert.IsNotNull(_instance.RNA);
        }
    }
}
